﻿<%@ Application Language="C#" %>
<%@ Import Namespace="System.Timers" %>
<%@ Import Namespace="System.Web" %>
<script runat="server">

    void Application_Start(object sender, EventArgs e) 
    {
        // 在应用程序启动时运行的代码
        System.Timers.Timer myTimer = new System.Timers.Timer(1 * 60 * 1000);//每1分钟更新一次，Timer的单位是毫秒。
        myTimer.Elapsed += new ElapsedEventHandler(UpdateRss);
        myTimer.AutoReset = true;
        myTimer.Enabled = true;

        System.Timers.Timer contentTimer = new System.Timers.Timer(1 * 60 * 1000);//每10分钟更新一次，Timer的单位是毫秒。
        contentTimer.Elapsed += new ElapsedEventHandler(UpdateNewsContent);
        contentTimer.AutoReset = true;
        contentTimer.Enabled = true;

        //Application["LastDeleteTime"] = DateTime.Now;
    }
    void UpdateRss(object sender, ElapsedEventArgs e)
    {               
        UpdateRssNews update = new UpdateRssNews();        
        update.UpdateAllSiteNews();        
        
        CreateHtml html = new CreateHtml();
        html.CreateHtmlAuto();      
    }
    void UpdateNewsContent(object sender, ElapsedEventArgs e)
    {
        CreateMyNewsHtml myNews = new CreateMyNewsHtml();
        myNews.CreateNewsContentAuto();

        DateTime delTime;
        int days = int.Parse(ConfigurationManager.AppSettings["DeleteNewsDays"]);
        if (Application["LastDeleteTime"] != null)
        {
            delTime = (DateTime)Application["LastDeleteTime"];
            if (delTime.AddHours(6) < DateTime.Now)//每6小时删除一次
            {
                myNews.DeleteNews(DateTime.Now.AddDays(- days).ToString("yyyy-MM-dd HH:mm:ss"));//保留几天的新闻，配置文件控制
            }
        }
        else
        {
            Application["LastDeleteTime"] = delTime = DateTime.Now;
            myNews.DeleteNews(DateTime.Now.AddDays(-days).ToString("yyyy-MM-dd HH:mm:ss"));
        }       
    }
    void Application_End(object sender, EventArgs e) 
    {
        //  在应用程序关闭时运行的代码

    }
        
    void Application_Error(object sender, EventArgs e) 
    { 
        // 在出现未处理的错误时运行的代码

    }

    void Session_Start(object sender, EventArgs e) 
    {
        // 在新会话启动时运行的代码
        string ipAddress = HttpContext.Current.Request.UserHostAddress.Trim();
        if(string.IsNullOrEmpty(ipAddress))
        {
            ipAddress = "no";
        }
        VisiterRecord visit = new VisiterRecord();
        visit.InsertVisitRecord(ipAddress);
    }

    void Session_End(object sender, EventArgs e) 
    {
        // 在会话结束时运行的代码。 
        // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
        // InProc 时，才会引发 Session_End 事件。如果会话模式设置为 StateServer 
        // 或 SQLServer，则不会引发该事件。

    }
       
</script>
